cc.Class({
    extends: cc.Component,

    properties: {
        /** 音频资源 */
        audioClip: {
            type: cc.AudioClip,
            default: null
        },
        /** 是否循环播放 */
        loop: {
            default: false
        },
        /** 音量 */
        volume: {
            default: 1,
            range: [0, 1, 0.01],  // 设置音量范围 [最小值, 最大值, 步进值]
            tooltip: "音量大小"
        },
        audioID: null  // 用来记录播放的音频ID
    },

    /** 播放音频 */
    playAudio: function () {
        if (this.audioClip) {
            this.audioID = cc.audioEngine.play(this.audioClip, this.loop, this.volume);
        }
    },

    /** 暂停音频 */
    pauseAudio: function () {
        if (this.audioID !== null) {
            cc.audioEngine.pause(this.audioID);
        }
    },

    /** 恢复播放音频 */
    resumeAudio: function () {
        if (this.audioID !== null) {
            cc.audioEngine.resume(this.audioID);
        }
    },

    /** 停止播放音频 */
    stopAudio: function () {
        if (this.audioID !== null) {
            cc.audioEngine.stop(this.audioID);
            this.audioID = null;  // 重置音频ID
        }
    },

    /** 设置音量 */
    setVolume: function (volume) {
        this.volume = volume;
        if (this.audioID !== null) {
            cc.audioEngine.setVolume(this.audioID, this.volume);
        }
    }
});
